﻿using _09_Tetris;

//int[] arr = { 0, 1, 2, 3, 4, 5, 6 };
//int index = arr.Length-1;
//Random random = new Random();
//for (int i = 0; i < arr.Length; i++)
//{
//    int temp = random.Next(0,index);
//    Console.WriteLine(arr[temp]);
//    arr[temp] = arr[index];
//    index--;
//}


Game game = new Game();
game.Play();

//void Test(ref TestStruct a)
//{
//    a.a = 1;
//    a.b = 2;
//}

//TestStruct t;
//t.a = 123;
//t.b = 456;

//Test(ref t);

//Console.WriteLine($"{t.a},{t.b}");

//int Swap(out int a , ref int b)
//{
//    int temp = 1;
//    a = temp;
//    a = b; 
//    b = temp;
//    return b;
//}


//int x = 1,y = 2;

//Swap(out x,ref y);
//Console.WriteLine($"{x},{y}");

// 值类型与引用类型
// int bool float之类的基本数据类型称之为值类型
// 除此之外 比如string class 数组 都是引用类型
// 在声明值类型变量时 系统会直接分配内存空间
// 在声明引用类型变量时 系统不会分配内存空间

// 值类型变量在作为参数传递时 是以复制的形式 需要申请内存空间
// 所以不会影响外界
// 想要影响外界 就需要引用 ref
// 引用的优势 省内存


// 输出参数
// 想同时返回多个值时使用 需要在外面申请空间


//return;

//struct TestStruct
//{
//    public int a;
//    public int b;
//}